﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Tibet.Logica;
using Tibet.Entidades;
using Tibet.GUI.Presentador;
using Tibet.GUI.Contrato;

namespace Tibet.GUI.Vista
{
    public partial class ModificarPerfilMetricas : System.Web.UI.Page, IContratoModificarPerfilMetricas
    {
        PresentadorModificarPerfilMetricas _presentadorModificarMetrica;

        private List<Entidad> _listaPerfiles;
        private List<Entidad> _listaMetricas;
        private List<Entidad> _listaMetricasPerfil;
        private List<CheckBox> _listaCheckBox;

        public String CampoBusqueda
        {
            get { return txtCampoBuscarPerfiles.Text; }
            set { txtCampoBuscarPerfiles.Text = value; }
        }

        public List<Entidad> listaPerfiles
        {
            get { return _listaPerfiles; }
            set { _listaPerfiles = value; }
        }

        public List<Entidad> listaMetricas
        {
            get { return _listaMetricas; }
            set { _listaMetricas = value; }
        }

        public List<Entidad> listaMetricasPerfil
        {
            get { return _listaMetricasPerfil; }
            set { _listaMetricasPerfil = value; }
        }

        public List<CheckBox> ListaCheckBox
        {
            get { return _listaCheckBox; }
            set { _listaCheckBox = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            cmdModifMetricas.Enabled = false;
            _presentadorModificarMetrica = new PresentadorModificarPerfilMetricas(this);
            _presentadorModificarMetrica.Iniciar();
            _presentadorModificarMetrica.PintarLista(GridViewEventos);

            if (Request.QueryString["idPerfil"] == null)
            {
                _presentadorModificarMetrica.CargarCheckBox();
                _presentadorModificarMetrica.PintarCheckBoxVacios(Panel2);
            }
            else
            {
                _presentadorModificarMetrica.PintarDatosSeleccionado(Panel2, int.Parse(Request.QueryString["idPerfil"]), NombrePerfilNuevo);
            }
        }

        protected void GridViewEventos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            //GridViewEventos.PageIndex = e.NewPageIndex;
        }

        protected void GridViewEventos_SelectedIndexChanged(object sender, EventArgs e)// boton edit
        {
            Response.Redirect("ModificarPerfilMetricas.aspx?idPerfil=" + GridViewEventos.SelectedIndex);
        }


        protected void btnFiltrarNombre(object sender, EventArgs e)
        {
            NombrePerfilNuevo.Text = "";
            _presentadorModificarMetrica.FiltrarPorNombre(GridViewEventos);
        }

        protected void cmdModifMetricas_Click(object sender, EventArgs e)
        {
            List<Entidad> NuevasMetricas = _presentadorModificarMetrica.CastearLista();
            if (NuevasMetricas.Count != 0)
            {
                _presentadorModificarMetrica.ModificarPerfilMetrica(NombrePerfilNuevo.Text, NuevasMetricas, int.Parse(Request.QueryString["idPerfil"]));

                if (_presentadorModificarMetrica.Estado)
                {
                    Alertar("Perfil de metrica modificado con exito", "alertKey");
                }
                else
                { 
                    Alertar("Ha ocurrido un error al modificar el Perfil", "alertKey"); 
                }
            }
            else
            {
                Alertar("Debe seleccionar al menos una metrica", "alertKey");
                //Response.Redirect("ModificarPerfilMetricas.aspx?idPerfil=" + Request.QueryString["idPerfil"]);
            }
            NombrePerfilNuevo.Text = "";
        }

        public void Alertar(string alertMsg, string alertKey)
        {
            string strScript = "<script language=JavaScript>alert('" +
                               alertMsg + "')</script>";
                this.RegisterStartupScript(alertKey, strScript);
        }

        public void BloquearBoton(bool Valor)
        {
            cmdModifMetricas.Enabled = Valor;
        }

    }
}